<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>绑定多个事件</title>
    <style>
      div {
        width: 100px;
        height: 100px;
        background-color: pink;
      }
    </style>
    <script src="lib/jQuery-v3.6.0.min.js"></script>
  </head>
  <body>
    <div></div>
    <ul>
      <li>我是第1个 li</li>
      <li>我是第2个 li</li>
      <li>我是第3个 li</li>
      <li>我是第4个 li</li>
    </ul>
    <ol></ol>

    <script>
      $(function () {
        // 1、绑定多个事件
        $('div').on({
          mouseover: function () {
            $(this).css('backgroundColor', 'skyblue')
          },
          mouseout: function () {
            $(this).css('backgroundColor', 'pink')
          },
          click: function () {
            $(this).css('backgroundColor', 'blue')
          }
        })

        // 2、on 可以实现事件委托（事件委派）
        // 说明1：click 是绑定在 ul 身上的，但是触发对象是 li
        // 说明2：li 发生事件冒泡，触发函数
        $('ul').on('click', 'li', function () {
          alert(11)
        })

        // 3、on 可以给动态生成的元素绑定事件
        // // 这样写，无法触发 click 事件
        // $('ol li').click(function () {
        //   alert(11)
        // })

        $('ol').on('click', 'li', function () {
          alert(11)
        })
        var li = $('<li>我是新创建的 li 元素</li>')
        $('ol').append(li)
      })
    </script>
  </body>
</html>
